//package com.example.phoneshop.controller;
//
///**
// * Create by zw ON 2018/7/9 12:43
// */
//
//import com.example.phoneshop.entity.Cart;
//import com.example.phoneshop.entity.Goods;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//
//import javax.servlet.http.Cookie;
//import javax.xml.transform.Result;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.HashMap;
//import java.util.Map;
//
//
//@Controller
//@RequestMapping("/cart")
//public class CartController {
//
//    //服务url
//    @Value("${REST_BASE_URL}")
//    private String REST_BASE_URL;
//    //商品服务url
//    @Value("${ITEMS_ITEM_URL}")
//    private String ITEMS_ITEM_URL;
//    //COOKIE中购物车商品对应的key
//    @Value("${CART_ITEMS_LIST_KEY}")
//    private String CART_ITEMS_LIST_KEY;
//    //购物车cookie生存期
//    @Value("${CART_ITEMS_EXPIRE_TIME}")
//    private Integer CART_ITEMS_EXPIRE_TIME;
//    /**
//     * 设置cookie
//     * @param response
//     * @param name  cookie名字
//     * @param value cookie值
//     * @param maxAge cookie生命周期  以秒为单位
//     */
//    public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
//        Cookie cookie = new Cookie(name,value);
//        cookie.setPath("/index");
//        if(maxAge>0)  cookie.setMaxAge(maxAge);
//        response.addCookie(cookie);
//    }
//    /**
//     * 根据名字获取cookie
//     * @param request
//     * @param name cookie名字
//     * @return
//     */
//    public static Cookie getCookieByName(HttpServletRequest request,String name){
//        Map<String,Cookie> cookieMap = ReadCookieMap(request);
//        if(cookieMap.containsKey(name)){
//            Cookie cookie = (Cookie)cookieMap.get(name);
//            return cookie;
//        }else{
//            return null;
//        }
//    }
//
//
//
//    /**
//     * 将cookie封装到Map里面
//     * @param request
//     * @return
//     */
//    private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
//        Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
//        Cookie[] cookies = request.getCookies();
//        if(null!=cookies){
//            for(Cookie cookie : cookies){
//                cookieMap.put(cookie.getName(), cookie);
//            }
//        }
//        return cookieMap;
//    }
//    @Override
//    public Result addItem(Long itemId, HttpServletRequest request, HttpServletResponse response) {
//        //根据商品id查询商品信息
//        Goods item = getItemById();
//        if (item == null) return Result.build(400, "未查询到该商品信息");
//        //取cookie中购物车商品列表
//        List<item> cartItems = getItemListFromCookie(request);
//        //判断该商品是否存在于购物车中
//        boolean itemExists = false;
//        for (item i : cartItems) {
//            if (i.getId().longValue() == itemId.longValue()) {
//                //购物车中有此商品
//                i.setNum(i.getNum() + 1);
//                itemExists = true;
//                break;
//            }
//        }
//        //如果商品不存在于购物车则向购物车商品列表中添加一个商品
//        if (! itemExists) {
//            //设置数量为1
//            item.setNum(1);
//            //把商品添加到购物车
//            cartItems.add(item);
//        }
//        //把购物车信息写入cookie中
//        CookieUtils.setCookie(request, response, CART_ITEMS_LIST_KEY, JsonUtils.objectToJson(cartItems), CART_ITEMS_EXPIRE_TIME, true);
//
//        return PhoneshopResult.ok(cartItems);
//    }
//
//    private Item getItemById(Long itemId) {
//        //根据商品id查询商品信息
//        String resultStr = HttpClientUtil.doGet(REST_BASE_URL + ITEMS_ITEM_URL + itemId);
//        //转换成phoneshopResult
//        PhoneshopResult result = PhoneshopResult.formatToPojo(resultStr, Item.class);
//        //取商品信息
//        Item item  = null;
//        if (result.getStatus() == 200) {
//            item = (Item) result.getData();
//        }
//        return item;
//    }
//
//    private List<Item> getItemListFromCookie(HttpServletRequest request) {
//        //取cookie中购物车商品列表
//        String cartItemsStr = CookieUtils.getCookieValue(request, CART_ITEMS_LIST_KEY, true);
//        //如果不为空那么就转换成java对象
//        List<Item> cartItems = null;
//        if (!StringUtils.isBlank(cartItemsStr)) {
//            cartItems = JsonUtils.jsonToList(cartItemsStr, Item.class);
//        } else {
//            cartItems = new ArrayList<>();
//        }
//        return cartItems;
//    }
//    @RequestMapping("/cart")
//    public String addItem(@PathVariable Long itemId,
//                          HttpServletRequest request, HttpServletResponse response, Model model) {
//        //添加商品信息
//        PhoneshopResult result = cartService.addItem(itemId, request, response);
//        //错误信息
//        if (result.getStatus() != 200) {
//            model.addAttribute("message", result.getMsg());
//            return "error/exception";
//        }
//        //把购物车中的商品传递给页面
//        model.addAttribute("cartList", result.getData());
//        return "cart";
//    }
//}
